﻿Imports SistemaINCA.Controllers
Imports SistemaINCA.Models
Imports System.Net
Imports SistemaINCA.Security

Namespace Controllers
    Public Class RegAcadController
        Inherits BaseController

        <Authorize(Roles:="ERA")> _
        <HttpGet()> _
        Function Index() As ActionResult
            Dim db As New SchoolClickDB_Repositorio
            Dim strAño As String = String.Empty
            Try
                strAño = db.IAñosEscolares.GetAñoEscolarActivo
                If strAño Is Nothing Then ViewBag.LastAnio = db.IAñosEscolares.GetUltimoAñoEscolar_Cerrado
            Catch ex As Exception
                ex.Data.Clear()
            End Try

            ViewBag.AnioE = strAño
            Return View()
        End Function

        <Authorize(Roles:="ERA")> _
        <HttpGet()> _
        Function Alumnos(id As String) As ActionResult
            Dim sNIE = HttpUtility.HtmlEncode(id)
            'Si se ingreso un codigo de alumno, buscamos el nombre del alumno
            If Not String.IsNullOrWhiteSpace(sNIE) Then
                Dim db As New SchoolClickDB_Repositorio
                Try
                    Dim alum = db.IAlumnos.GetAlumno(sNIE)
                    'Verificamos q haya encontrado un alumno con ese ID
                    If alum IsNot Nothing Then
                        ViewBag.Alumno = String.Format("{0} {1}", alum.NOMBRES, alum.APELLIDOS)
                        ViewBag.NIE = sNIE
                    End If
                Catch ex As Exception
                    ex.Data.Clear()
                End Try
            End If
            Return View()
        End Function

        <Authorize(Roles:="ERA")> _
        <HttpPost()> _
        Function PartialView_PeriodoActivo() As ActionResult
            Dim db As New SchoolClickDB_Repositorio
            Try
                'Comprobamos si el año escolar activo se encuentra en la etapa de definicion o no
                If db.IAñosEscolares.IsEditYCreacionNuevoAño Then
                    ViewBag.IsYearDefinition = True
                Else
                    ViewBag.IsYearDefinition = False
                    'Cargamos la informacion del periodo activo del sistema
                    Dim pInfo = db.IPeriodos.GetPeriodoActivo_Informacion
                    ViewBag.PInfo = pInfo
                    ViewBag.IsPeriodoNull = False

                    'Determinamos si existe periodo activo en el sistema
                    If pInfo Is Nothing Then
                        'Obtenemos el ultimo periodo que fue activado y el siguiente periodo que deberia ser activado
                        ViewBag.NextP = db.IPeriodos.GetUltimoPeriodo_Y_SiguientePeriodo
                        ViewBag.IsPeriodoNull = True
                        ViewBag.AñoCerrado = False

                        'Comprobamos si el Ultimo Periodo y el Siguiente Periodo son NULL, significa que el año escolar ha sido cerrado
                        If db.IAñosEscolares.GetAñoEscolarActivo Is Nothing Then
                            ViewBag.AñoCerrado = True

                            'Obtenemos si el año que esta cerrado, se encuentra en el periodo de reposicion de materias o no
                            ViewBag.PSufi = db.IPeriodos.IsPeriodoReprobados
                        End If
                    End If
                End If
                Return PartialView("_ViewPeriodoActivo")
            Catch ex As Exception
                Response.StatusCode = HttpStatusCode.InternalServerError
                Return PartialView("_ViewPeriodoActivo")
            End Try
        End Function
    End Class
End Namespace
